<?php

class Nota{
	private  $nota = array(), $avaliacao, $disciplina, $pessoa;

	
	public function __construct($nota, $avaliacao, $pessoa){
		$this->setNota($nota, $avaliacao);
		$this->setPessoa($pessoa);
	}
	
	public function __destruct(){
	}
		
		
	public function setNota($nota, $avaliacao){
		if(!is_null($nota)){
			$this->nota[$avaliacao] = $nota;
			$this->setAvaliacao($avaliacao);
		}
	}
	
	public function setAvaliacao($avaliacao){
		if(!is_null($avaliacao)){
			$this->avaliacao = $avaliacao;
		}
	}
	
	public function setPessoa(Pessoa $pessoa){
		if(!is_null($pessoa)){
			$this->pessoa = $pessoa;
		}
	}
	
	public function setDisciplina(Disciplina $disciplina){
		if(!is_null($disciplina)){
			$this->disciplina = $disciplina;
		}
	}
	
	public function getNota(){
		return $this->nota;
	}
	
	public function getDisciplina(){
		return $this->disciplina;
	}
	
	public function getAvaliacao(){
		return $this->avaliacao;
	}
	
	public function getPessoa(){
		return $this->pessoa;
	}
	
	public function getMedia(){
		$notas = $this->nota;
		$i=0;
		$soma = 0;
		foreach ($notas as $nota){
			if($i<2){
				$soma = $soma+($nota*1);
				$i++;
			}else{
				$soma = $soma+($nota*2);
				$i = $i+2;
			}
			
			
		}
		$media = $soma/$i;
		
		return $media;		
	}
	
	public function equals(Nota $nota){
		if($this->getAvaliacao()==$nota->getAvaliacao() &&
			$this->getDisciplina()->equals($nota->getDisciplina())){
			return true;
		}
		return false;
	}
	
	public function __toString(){
		$tabNota = $this->nota;
		if(isset($tabNota['1'])){$texto = ($tabNota['1'])."</td>";}else{$texto ="<td></td>";}
		if(isset($tabNota['2'])){$texto .= "<td>".$tabNota['2']."</td>"; }else{$texto .="<td></td>";}
		if(isset($tabNota['Rec'])){$texto .= "<td>".$tabNota['Rec']."</td>"; }else{$texto .="<td></td>";}
		$texto .= "<td>".number_format($this->getMedia(),2)."</td>";
		if($this->getMedia()<2){
			$situacao = "Reprovado na disciplina";
		}elseif($this->getMedia()>=2 && $this->getMedia()<5){
			$situacao = "Em recuperação";
		}else{
			$situacao = "Aprovado";
		}
		$texto .= "<td>".$situacao;
		
		return $texto;
	}
}
?>